/*
unshift
shift
*/

var arr = [1,3,5,'测试'];
arr.unshift('A','B'); //往Array的头部添加若干元素
console.log(arr);

arr.shift() //shift()方法则把Array的第一个元素删掉：
console.log(arr);



/*
sort
*/

// sort函数默认排序方式
var arr=[1,6,24,7,31,12];
arr.sort();
console.log(arr);  

//创建一个函数实现排序
arr.softMe = function(fn)
{
    console.log(fn);
    console.log(this);
    // 如果没有传参数，则让它具有一个默认的排序函数

    if(fn == undefined)
    {
        fn = (a,b) => a>b;
    }
// 外层循环，遍历数组当中的每一个元素
    for(var j=0 ; j<this.length; j++)
    {
        var minItem = this[j];
        var minIndex = j;

// 内层循环，遍历数组从j+1开始的每一个元素，负责找到从j下标开始的最小值或者最大值
    for(var i=j+1; i<this.length;i++)
    {
        if(fn(minItem,this[i]))
        {
            minItem = this[i];
            minIndex=i;
        }
    }
    console.log(minItem);

 // 和第j个元素交换找到的最小值或者最大值
 var a = this[j]
 this[j] = this[minIndex]
 this[minIndex] = a
 console.log(this);
    
}

}
arr.softMe(function(a,b)
{
    return a>b
})


/*
splice
*/
var arr=['a','sf',23,'测试'];
arr.splice(1,2,'删除后加一','删除后加二');
console.log(arr.splice(1,2,'删除后加一','删除后加二'));
console.log(arr);
arr.splice(2, 0, 'Google', 'Facebook'); // 返回[],因为没有删除任何元素
arr; // ['Microsoft', 'Apple', 'Google', 'Facebook', 'Oracle']